iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
Software Development

Unity黑科技揭秘:30個專業遊戲開發者必知的開發技巧系列 第 20

Unity Adb - 使用ADB快速調用Android系統!

  • 分享至 

  • xImage
  •  

ADB(Android Debug Bridge)是一種可以跟Android設備溝通的橋樑工具
在開發Android或是Quest VR裝置的時候
使用Adb可以很方便的處理調式各種功能


一、準備工作

  1. 安裝 Android SDK 平台工具

    • 確保你已經安裝了 Android SDK 並配置了 adb 可執行文件的環境變量。
  2. 啟用 Android 裝置的開發者模式

    • 前往裝置的設定 > 關於手機,連續點擊 "版本號" 以啟用開發者模式,然後在開發者選項中啟用「USB 調試」。
  3. Unity 項目設置

    • 在 Unity 中開啟 Android 平台(File > Build Settings),並將 Build Target 設置為 Android。
    • 確保在 Android 設置中允許 ADB 與你的裝置互動。

二、常用 ADB 指令集

1. 連接裝置

在你使用 Unity 測試應用時,確保正確連接到 Android 裝置。

# 開啟指定端口進行無線連接
adb tcpip 5555

# 連接裝置 (用設備的 IP 地址代替)
adb connect "裝置IP"

2. 檢查裝置電池狀態

# 電池狀態
adb shell dumpsys battery

# 控制器電池狀態
adb logcat -d | findstr /C:"serial" /C:"handedness" /C:"battery state"

3. 存儲空間查詢

# 查看裝置存儲狀況
adb shell df -h

4. 裝置信息

# 查詢裝置型號
adb shell getprop ro.product.model

# 查詢裝置序列號
adb shell getprop ro.serialno

5. 應用管理

# 關閉應用
adb shell am force-stop com.my.app.package

# 開啟應用 (多種方式)
adb shell monkey -p your.app.package.name 1
adb shell am start -n com.package.name/.ActivityName

6. 應用安裝與卸載

# 安裝 APK 文件
adb install E:\Cindy\test.apk

# 卸載應用
adb uninstall com.cindy.test

7. 重啟裝置

# 立即重啟 Android 裝置
adb reboot

8. 拉取指定資料

# 將系統中的 APK 文件拉取到本地
adb pull /system/app/cindy.apk E:\Cindy\

9. 列出安裝的應用

# 列出裝置中已安裝的應用
adb shell pm list packages

10. 屏幕狀態檢查

# 檢查屏幕狀態
adb -s 192.168.88.32 shell dumpsys display | findstr "mScreenState"
adb -s 192.168.88.32 shell dumpsys activity activities | find "isSleeping"

11. 傳感器狀態查詢

# 查詢裝置的感應器狀態
adb -s 192.168.88.37 shell getprop | findstr "mounted"

12. 查詢當前活動

# 查詢當前活動的 Activity
adb -s 192.168.88.32 shell dumpsys activity activities | find "mResumedActivity"

13. 禁用與啟用裝置功能

# 禁用接近傳感器
adb shell am broadcast -a com.oculus.vrpowermanager.prox_close

# 啟用接近傳感器
adb shell am broadcast -a com.oculus.vrpowermanager.automation_disable

14. Guardian 設置 (適用於 Oculus Quest 2)

# 停止 Guardian
adb shell setprop debug.oculus.guardian_pause 0

# 啟用 Guardian
adb shell setprop debug.oculus.guardian_pause 1

15. 文件操作

# 推送文件到 SD 卡
adb push ./demo.txt /sdcard/Android/data/com.pumpkin.vrcms.client/files/pumpkin-cms-config2.txt

三、在 Unity 中使用 ADB 的實際應用

在 Unity 中使用 ADB 命令可以幫助你在開發過程中自動化 Android 應用的測試與部署流程。你可以通過編寫自動化腳本來執行這些命令,並在測試設備上快速重複進行應用的安裝、卸載、重啟等操作。

可以考慮使用 C# 程序直接在 Unity 編輯器中呼叫 ADB 命令:

using System.Diagnostics;

public class ADBHelper
{
    public static void ExecuteAdbCommand(string command)
    {
        Process adbProcess = new Process();
        adbProcess.StartInfo.FileName = "adb";
        adbProcess.StartInfo.Arguments = command;
        adbProcess.StartInfo.RedirectStandardOutput = true;
        adbProcess.StartInfo.UseShellExecute = false;
        adbProcess.StartInfo.CreateNoWindow = true;
        adbProcess.Start();
        
        string output = adbProcess.StandardOutput.ReadToEnd();
        adbProcess.WaitForExit();
        UnityEngine.Debug.Log(output);
    }
}

在 Unity 編輯器內,你可以像這樣呼叫 ADBHelper.ExecuteAdbCommand("devices") 來列出所有連接的裝置。



上一篇
Unity Firestore - 使用 Firestore進行資料儲存!
下一篇
Unity Shapes - 開始製作各種各樣的形狀!
系列文
Unity黑科技揭秘:30個專業遊戲開發者必知的開發技巧25
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言